草庐IT

带指针的 C++ vector

全部标签

c++ - R 数值 vector 列表 -> C++ 2d array with Rcpp

我主要使用R,但最终想使用Rcpp与一些接收和返回二维数值数组的C++函数交互。因此,为了开始使用C++和Rcpp,我想我只需要编写一个小函数,将我的可变长度数字vector的R列表转换为C++等效项,然后再返回。require(inline)require(Rcpp)test1=cxxfunction(signature(x='List'),body='usingnamespacestd;Listxlist(x);intxlen=xlist.size();vector>xx;for(inti=0;itest=as>(xlist[i]);xx.push_back(test);}retu

c++ - Stringstream 到 vector<int>

我想知道从std::stringstream中写入的最佳方式是什么进入vector.这是stringstream中内容的示例:"31#0053253803335342337"这是我得到的:intbuffer=0;vectoranalogueReadings;stringstreamoutput;while(output>>buffer)analogueReadings.push_back(buffer);然而,似乎发生的是,它读取第一件事,然后到达#00并返回0因为它不是数字。理想情况下,我想要的是,它达到#然后跳过所有字符直到下一个空格。这可以用标志或其他东西实现吗?谢谢。

c++ - unsigned char 和 char 指针之间的区别

我对unsignedchar(在WinAPI中也是BYTE)和char指针之间的差异感到有点困惑。目前我正在处理一些基于ATL的遗留代码,我看到了很多如下所示的表达式:CAtlArrayrawContent;CALL_THE_FUNCTION_WHICH_FILLS_RAW_CONTENT(rawContent);returnArrayToUnicodeString(rawContent);//orreturnArrayToAnsiString(rawContent);现在,ArrayToXXString的实现如下所示:CStringAArrayToAnsiString(constCA

c++ - 打印 int 指针的值

我一直在研究这个,但我似乎无法让它正常工作。我正在返回一个指针列表的最后一个值,我想打印它,但它打印的是一个非常随机的数字。我假设这是指针的内存地址,但是当我取消引用它时,我的输出仍然做同样的事情。我的指针列表是一个指针列表,例如:listpointerList例如,这是我的方法返回:int*end(){return(pointerList.back());}我就是这样调用它的。int*totry=ca.end();cout这是打印内存地址而不是值。有没有人知道如何解决这个问题?提前致谢!编辑:这是int指针指向的内容:我有一个值列表,例如[0,1,2,3,4,5,6,7,8,9,10

C++ 用另一个 vector 填充一个 vector

我有两个vector,我想用第二个填充第一个。vector声明如下:vectorfirstVector;其中Vec3是一个具有floatx、y、z的结构。我试过通过分配喜欢这个:secondVector.assign(firstVector.begin(),firstVector.end());但是它停下来并提示说end()有问题。我也试过推回,但当然不行。正如我之前读到的,我应该用assign来做,但我不知道如何正确地解决它。编辑:insert和assign的报错信息是一样的:这个0x00000000...std::vector>*const[size]CXX0030:错误:无法计算

c++ - unordered_set 将元素存储为指针

缩小范围:我目前正在使用Boost.Unordered.我看到两种可能的解决方案:定义我自己的EqualityPredicatesandHashFunctions并利用模板(可能是is_pointer)来区分指针和实例;简单地扩展boost::hash通过提供hash_value(Type*const&x)至于散列;并添加==运算符重载为自由函数(Type*const&x,Type*const&y)用于相等检查的参数。我不确定这两种变体是否真的可行,因为我没有测试它们。我想知道你处理这个问题。欢迎实现:)编辑1:这个呢?templatestructEquals:std::binary_

c++ - 在 JNI 中,是否有针对从 AttachCurrentThread() 返回的 JNIEnv 指针的清理函数?

我想知道从JNI函数AttachCurrentThread()获得的JNIEnv*的生命周期。考虑以下检索JNIEnv指针的函数。JNIEnv*RetrieveJniEnvPtr(){JavaVM*pJavaVM;//AssumepJavaVMisalreadyinitializedJNIEnv*pEnv=NULL;if(pJavaVM->GetEnv((void**)&pEnv,JNI_VERSION_1_6)!=JNI_OK){pJavaVM->AttachCurrentThread((void**)&pEnv,NULL);}returnpEnv;}是否有与调用AttachCurr

c++ - C++中指向成员函数的指针

这实际上是一个国际象棋下棋程序,但是代码太长无法贴在这里,所以我将使用一个更简单的无关示例:假设我有这样一个对象:classA{intx1;intx2;public:intAverage(){return(x1+x2)/2;}};我想要一个名为AveragesList的vector,它存储每个对象的所有x1和x2值的所有平均值(或指向它们的指针)。所以我尝试这样做:vector*AveragesList;classA{intx1;intx2;public:intAverage(){return(x1+x2)/2;}A(){AveragesList.push_back(this->Ave

c++ - 如何将元素插入 std::unordered_map<int, vector<Object*>>

我正在尝试创建指向我的对象的指针数组的散列。散列键是对象类型的int,数组是要渲染的对象列表。我想做的是:unordered_map>drawQueue;drawQueue.clear();//newemptydrawqueuefor(...){drawQueue.at(type).push_back(my_obj);}所以我对STL东西的细微差别还不够熟悉,因为我得到一个异常,说out_of_bounds,这是当key不存在时发生的情况。所以我想我需要先创建key,然后添加到vector中:if(drawQueue.count(type)){//keyalreadyexistsdra

c++ - 多线程 vector

我正在使用C++开发一个项目,该项目使用自己创建的map来存储数据-从这个意义上讲,map更像是“地理”map,因此是图像。有不同的线程读取和写入它。map的数据存储在整数vector的标准vector中。它的大小不会改变,只是通过getter和setter函数改变某些像素的内容。我的问题如下:有时一切正常,但更多时候我得到损坏的图像,因为像素值改变符号或变得与它们应该的值完全不同。这可能是对像素的线程读/写访问的问题,如果是这样,我应该使用什么来代替标准vector?我曾尝试使用互斥锁来确保只有一个线程读取或写入vector,但是这些读/写操作经常发生,如果我在每次操作时都锁定vec